{
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "# A practical introduction into quantum signal processing (QSP)\n",
        "\n",
        "In this notebook we are going to implement and run the single-qubit quantum circuits used to illustrate quantum signal processing in [arXiv:2110.11327](https://arxiv.org/abs/2110.11327) and [arXiv:2105.02859](https://arxiv.org/abs/2105.02859).\n",
        "Quantum signal processing is a systematic framework to transform quantum systems with respect to almost arbitrary polynomial functions."
      ],
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "We first include some functions from Qiskit, NumPy, SymPy, as well as Matplotlib."
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "from qiskit import QuantumCircuit, execute, transpile\n",
        "from qiskit.providers.basicaer import UnitarySimulatorPy\n",
        "from qiskit.tools.monitor import job_monitor\n",
        "\n",
        "import numpy as np\n",
        "import numpy.random as random\n",
        "\n",
        "import sympy as sp\n",
        "\n",
        "import matplotlib.pyplot as plt\n",
        "\n",
        "from math import acos\n",
        "\n",
        "# Printing configuration\n",
        "from sympy.interactive import printing\n",
        "printing.init_printing(use_latex=True)\n",
        "from IPython.display import display, Markdown"
      ],
      "outputs": [],
      "execution_count": 1,
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 1. QSP polynomials\n",
        "\n",
        "To illustrate quantum signal processing, consider a sequence in which we alternate a *signal* rotation operator\n",
        "$$ W(x) = \\begin{pmatrix} x & \\mathrm{i}\\sqrt{1 - x^2} \\\\ \\mathrm{i}\\sqrt{1 - x^2} & x \\end{pmatrix} $$\n",
        "for a *fixed* value $x \\in [1, -1]$ and a *processing* rotation operator\n",
        "$$ S(\\phi) = e^{\\mathrm{i}\\phi Z} $$\n",
        "for variable real numbers $\\phi$.  These two matrices are unitary and can be implemented using $R_x(-2\\cos^{-1} x) = W(x)$ and $R_z(-2 \\phi) = S(\\phi)$ operations as follows."
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "class WGate(QuantumCircuit):\n",
        "    \"\"\"Defines the W(x) gate in terms of a Rx rotation\"\"\"\n",
        "    def __init__(self, x):\n",
        "        super().__init__(1)\n",
        "\n",
        "        super().rx(-2.0 * acos(x), 0)\n",
        "\n",
        "class SGate(QuantumCircuit):\n",
        "    \"\"\"Defines the S(ɸ) gate in terms of a Rz rotation\"\"\"\n",
        "    def __init__(self, phi):\n",
        "        super().__init__(1)\n",
        "\n",
        "        super().rz(-2.0 * phi, 0)"
      ],
      "outputs": [],
      "execution_count": 2,
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "We also define two functions that compute the matrices explicitly as defined above.  We are using SymPy here, so we can later evaluate them symbolically to create various polynomials."
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "def expected_w(x):\n",
        "    \"\"\"Return W(x) as a SymPy matrix\"\"\"\n",
        "    return sp.Matrix([[x, 1j * sp.sqrt(1 - x**2)], [1j * sp.sqrt(1 - x**2), x]])\n",
        "\n",
        "def expected_s(phi):\n",
        "    \"\"\"Return S(x) as a SymPy matrix\"\"\"\n",
        "    return sp.diag([sp.exp(1j * phi), sp.exp(-1j * phi)], unpack=True)"
      ],
      "outputs": [],
      "execution_count": 3,
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "Let's now test whether the `WGate` and the `SGate` do compute the expected matrices.  For this purpose, we create quantum circuits with a single gate and random values for $x$ and $\\phi$ and compare the unitary of the circuit with the expected unitary from the function."
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "# Create Qiskit backend to obtain unitary matrices from quantum circuits\n",
        "unitary_backend = UnitarySimulatorPy()\n",
        "\n",
        "# Check for 100 random numbers\n",
        "for _ in range(100):\n",
        "    # Draw an x in [-1, 1] to test WGate\n",
        "    x = random.rand() * 2 - 1\n",
        "\n",
        "    circ = QuantumCircuit(1)\n",
        "    circ.append(WGate(x), [0])\n",
        "\n",
        "    # Run circuit and return unitary matrix\n",
        "    actual = execute(circ, unitary_backend).result().get_unitary()\n",
        "\n",
        "    # Expected result from definition (transforms SymPy matrix into NumPy array)\n",
        "    expected = np.array(expected_w(x).evalf()).astype(complex)\n",
        "\n",
        "    assert np.allclose(actual, expected)\n",
        "\n",
        "\n",
        "    # Draw a ɸ in [0, 2π] to test SGate\n",
        "    phi = random.rand() * np.pi\n",
        "\n",
        "    circ = QuantumCircuit(1)\n",
        "    circ.append(SGate(phi), [0])\n",
        "\n",
        "    # Run circuit and return unitary matrix\n",
        "    actual = execute(circ, unitary_backend).result().get_unitary()\n",
        "\n",
        "    # Expected result from definition (transforms SymPy matrix into NumPy array)\n",
        "    expected = np.array(expected_s(phi).evalf()).astype(complex)\n",
        "\n",
        "    assert np.allclose(actual, expected)\n",
        "\n",
        "print(\"All tests passed.\")"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": "All tests passed.\n"
        }
      ],
      "execution_count": 4,
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "Now that we have a better understanding of $W(x)$ and $S(\\phi)$, let's get back to quantum signal processing, or in short QSP.\n",
        "For a set of so-called *QSP phases* $\\vec \\phi = (\\phi_0, \\dots, \\phi_d)$ we can construct the unitary matrix\n",
        "$$ U^{\\vec\\phi} = S(\\phi_0)\\prod_{i=1}^d W(x) S(\\phi_i) = \\begin{pmatrix} P(x) & \\mathrm{i}Q(x) \\sqrt{1-x^2} \\\\ \\mathrm{i}Q^*(x)\\sqrt{1-x^2} & P^*(x) \\end{pmatrix}$$\n",
        "for some polynomials $P(x)$ and $Q(x)$ such that $\\mathrm{deg}(P) \\le d$, $\\mathrm{deg}(Q) < d$.  You can find more details about this remarkable result in [arXiv:1603.03996](https://arxiv.org/abs/1603.03996).\n",
        "\n",
        "Also the inverse direction works! Given any polynomial $P(x)$ that fulfills the requirement properties and some error bound $\\epsilon$ we can find QSP phases $\\vec\\phi$ from which we can build the alternating gate sequence $U^{\\vec\\phi}$.  Algorithms to find these phases are described, e.g., in [arXiv:1806.10236](https://arxiv.org/abs/1806.10236) and [arXiv:2003.02831](https://arxiv.org/abs/2003.02831).  But instead of using such approaches to find phases for some polynomial, we are picking some phases and use whatever polynomial results from them in our experiments."
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "def qsp_polynomial(x, phases):\n",
        "    \"\"\"\n",
        "    Given 𝑑 + 1 QSP phases ɸ[0], ..., ɸ[𝑑], returns the unitary matrix U^ɸ as described above,\n",
        "    the polynomial in its top-left corner, and the expression in the top-right corner.\"\"\"\n",
        "    assert phases, \"phases cannot be empty\"\n",
        "\n",
        "    poly = expected_s(phases[0])\n",
        "\n",
        "    for phi in phases[1:]:\n",
        "        poly = poly * expected_w(x) * expected_s(phi)\n",
        "    \n",
        "    poly = sp.simplify(poly)\n",
        "    return poly, poly[0, 0], poly[0, 1]"
      ],
      "outputs": [],
      "execution_count": 5,
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "Let's use these functions to create a polynomial of degree 1 with phases $0.1$, $0.2$, $0.3$, and $0.4$."
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "# For now we want the polynomial symbolically for some variable 𝑥\n",
        "x = sp.Symbol('x')\n",
        "phases = [0.1, 0.2, 0.3, 0.4]\n",
        "\n",
        "# For our first experiment we do not need the polynomial in the top-right corner\n",
        "U, poly, _ = qsp_polynomial(x, phases)\n",
        "\n",
        "# We use this to circumvent a display problem with SymPy\n",
        "display(Markdown(poly._repr_latex_()))"
      ],
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": "<IPython.core.display.Markdown object>",
            "text/markdown": "$\\displaystyle x \\left(- 1.0 \\cdot \\left(1 - x^{2}\\right) \\left(1.92106099400289 + 0.389418342308651 i\\right) + \\left(1.0 x^{2} + x^{2} e^{0.4 i} - 1.0\\right) e^{0.6 i}\\right)$"
          },
          "metadata": {}
        }
      ],
      "execution_count": 6,
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "Let's also plot the squared magnitude $|P(x)|^2$ of this polynomial in the range $x \\in [-1, 1]$."
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "# translate amplitude polynomial into probability polynomial\n",
        "poly_abs = sp.Abs(poly)**2\n",
        "\n",
        "# discretization points (this will correspond to the number of quantum jobs)\n",
        "discretization_points = 30\n",
        "\n",
        "xs = np.linspace(-1, 1, discretization_points)\n",
        "ys = [poly_abs.evalf(subs={'x': x}) for x in xs]\n",
        "\n",
        "fig = plt.figure()\n",
        "ax = fig.add_subplot(1, 1, 1)\n",
        "ax.plot(xs, ys)\n",
        "plt.show()"
      ],
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": "<Figure size 640x480 with 1 Axes>",
            "image/png": "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He7fLBYMH4zcc889AsAFX++++65yHfTOY5CFQiHx0EMPifz8fOF0OsV1110nDh06NOD3Njc3izvuuEOkpqYKt9stli1bNiDASZSLrePEiRMX3F8hhFixYoUoKSkRwWDwgt/5+uuvizlz5ojU1FSRkpIiZs+eLZ588slBrxtvkd6/6upqcdVVV4msrCzhdDrFxIkTxXe+850Bc0aEEOLkyZPixhtvFElJSSInJ0d861vfGtAWm0iR3sd333130L9pAOLEiRNCCHUfw1//+tdi7NixwuFwiIULF4otW7Yo31u8eLG45557Blz/pZdeEpMnTxYOh0NMnz5dvPbaawO+P5LnY6JFch/HjRs36GO1atUqIYQQnZ2dYsmSJSI3N1fY7XYxbtw4ce+998b0hT5Skdy/b3zjG8p18/PzxU033SR27tw54Pdp7TGM9G/04MGDAoDYsGHDBb9La4/fUK8P8n265557xOLFiy/4mTlz5giHwyHKysoGvB/Khvs3iwVJiAT3axIRERH1wzkjREREpCoGI0RERKQqBiNERESkKgYjREREpCoGI0RERKQqBiNERESkKgYjREREpCoGI0RERKQqBiNERESkKgYjREREpCoGI0RERKQqBiNERESkqv8PGsD3/07JA4IAAAAASUVORK5CYII=\n"
          },
          "metadata": {}
        }
      ],
      "execution_count": 7,
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 2. Simulating the QSP polynomial with a quantum circuit\n",
        "\n",
        "Next, we are creating the quantum circuit using $W$ and $S$ gates that is supposed to implement our target unitary with the QSP polynomial $P$ in the top-left corner."
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "def qsp_circuit(x, phases):\n",
        "    \"\"\"Creates a single-qubit unitary for some given QSP phases\"\"\"\n",
        "\n",
        "    # Map SumPy phases into NumPy phases and reverse them (gate application\n",
        "    # direction is opposite to matrix multiplication)\n",
        "    np_phases = [float(phi) for phi in phases]\n",
        "    np_phases.reverse()\n",
        "\n",
        "    circ = QuantumCircuit(1)\n",
        "\n",
        "    # We need to apply gates in reverse order to matrix multiplication\n",
        "    circ.append(SGate(np_phases[0]), [0])  # apply last angle\n",
        "    for phi in np_phases[1:]:           # iterate through all but last angle in reverse order\n",
        "        circ.append(WGate(x), [0])\n",
        "        circ.append(SGate(phi), [0])\n",
        "\n",
        "    return circ"
      ],
      "outputs": [],
      "execution_count": 8,
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "We simulate the unitary matrices of QSP circuits constructed for some random values of $x \\in [-1, 1]$ and compare them to the unitary $U$ that we explicitly constructed above."
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "# Test QSP polynomial\n",
        "for _ in range(10):\n",
        "    x = random.rand() * 2.0 - 1.0\n",
        "\n",
        "    # Create circuit\n",
        "    circ = qsp_circuit(x, phases)\n",
        "\n",
        "    # Run circuit and return unitary matrix\n",
        "    actual = execute(circ, unitary_backend).result().get_unitary()\n",
        "\n",
        "    # Expected result from U by plugging in x value for x symbol (transforms SymPy matrix into NumPy array)\n",
        "    expected = np.array(U.evalf(subs={'x': x})).astype(complex)\n",
        "\n",
        "    assert np.allclose(actual, expected)"
      ],
      "outputs": [],
      "execution_count": 9,
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "Great, the test passes! This means we should be able to reconstruct the polynomial $|P(x)|^2$ that we plotted above by running the QSP circuit several times and estimating the measurement probability of receiving $|0\\rangle$ from various measurement results iterating through different values for $x$.\n",
        "We set ourselves up by first creating a function that takes as input a quantum circuit that can be parameterized for a value $x$, a set of values from which we draw $x$, as well as a number of shots that indicates how many times the circuit is run for each $x$.\n",
        "The function returns a list of measurement probabilities that approximate $|P(x)|^2$ based on running the QSP circuit.\n",
        "\n",
        "The reason that we approximate the probability of measuring $|0\\rangle$ is because we obtain $P(x) = \\langle 0|U^{\\vec\\phi} |0\\rangle$, i.e., as a projection to the top-left corner.\n",
        "\n",
        "For the upcoming experiments we are going to simulate the QSP polynomial on a quantum computing backend.\n",
        "To do this, we connect to the Azure Quantum service.\n",
        "We construct an instance of the `AzureQuantumProvider`. Note that it's imported from `azure.quantum.qiskit`."
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "# Create a backend for quantum circuit simulation (e.g., ionq_simulator or ionq_qpu)\n",
        "from azure.quantum.qiskit import AzureQuantumProvider\n",
        "provider = AzureQuantumProvider (\n",
        "    resource_id = \"\",\n",
        "    location = \"\"\n",
        ")"
      ],
      "outputs": [],
      "execution_count": 10,
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "# List all available targets\n",
        "print(\"This workspace's targets:\")\n",
        "for backend in provider.backends():\n",
        "    print(\"- \" + backend.name())\n",
        "\n",
        "# Select ionq.simulator target\n",
        "backend = provider.get_backend(\"ionq.simulator\")"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": "This workspace's targets:\n- honeywell.hqs-lt-s1\n- honeywell.hqs-lt-s1-apival\n- honeywell.hqs-lt-s2\n- honeywell.hqs-lt-s2-apival\n- honeywell.hqs-lt-s1-sim\n- ionq.qpu\n- ionq.qpu.aria-1\n- ionq.simulator\n- quantinuum.hqs-lt-s1\n- quantinuum.hqs-lt-s1-apival\n- quantinuum.hqs-lt-s2\n- quantinuum.hqs-lt-s2-apival\n- quantinuum.hqs-lt-s1-sim\n- quantinuum.hqs-lt-s2-sim\n- quantinuum.qpu.h1-1\n- quantinuum.sim.h1-1sc\n- quantinuum.sim.h1-1e\n"
        }
      ],
      "execution_count": 11,
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "def simulate_polynomial(circuit_function, xs, num_shots):\n",
        "    \"\"\"\n",
        "    This function creates experiment circuits for each `x` in `xs`,\n",
        "    simulates them for the given number of shots and returns a list\n",
        "    of measurement probabilities for each input value `x`.\n",
        "    \"\"\"\n",
        "    # Array in which we store all simulated probabilities\n",
        "    ys_simulated = []\n",
        "\n",
        "    # Submit jobs for each x\n",
        "    jobs = [backend.run(circuit_function(x), shots=num_shots) for x in xs]\n",
        "\n",
        "    # After we submitted all the jobs, we wait for each of them.\n",
        "    # It does not matter whether jobs finishes in a different order than they were executed, since we\n",
        "    # traverse the jobs in the same order as they were executed.\n",
        "    for job in jobs:\n",
        "        # Wait for the job to finish\n",
        "        job_monitor(job)\n",
        "\n",
        "        # Derive probability of |0⟩ outcome\n",
        "        counts = job.result().get_counts()\n",
        "        probability = counts.get('0', 0) / counts.shots()\n",
        "\n",
        "        # Append probability to simulated probabilities for plotting\n",
        "        ys_simulated.append(probability)\n",
        "\n",
        "    return ys_simulated"
      ],
      "outputs": [],
      "execution_count": 12,
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "Let's try this function for our QSP circuit.  We can use the `qsp_circuit` function that we created above, but we must add a measurement instruction at the end of the circuit.\n",
        "Calling the `simulate_polynomial` function returns values that we plot alongside the values we got from directly evaluating the formula."
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "# Number of shots per x value (choose a higher x to increase the precision)\n",
        "num_shots = 100\n",
        "\n",
        "# Creates an experiment circuit based on x\n",
        "def experiment_circuit(x):\n",
        "    # Create circuit\n",
        "    circ = qsp_circuit(x, phases)\n",
        "\n",
        "    # Measure qubit\n",
        "    circ.measure_all()\n",
        "\n",
        "    # Transpile circuit\n",
        "    return transpile(circ, backend)\n",
        "\n",
        "ys_simulated = simulate_polynomial(experiment_circuit, xs, num_shots)\n",
        "\n",
        "# Plot both evaluated probabilities `ys`` and simulated ones `simulated_ys``\n",
        "fig = plt.figure()\n",
        "ax = fig.add_subplot(1, 1, 1)\n",
        "ax.plot(xs, ys, label='formula')\n",
        "ax.plot(xs, ys_simulated, label='simulated')\n",
        "plt.legend(loc='upper right')\n",
        "plt.show()"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": "Job Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\n"
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": "<Figure size 640x480 with 1 Axes>",
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "execution_count": 13,
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 3. Projecting into the $\\{|+\\rangle, |-\\rangle\\}$ basis\n",
        "\n",
        "In the previous section we projected the unitary into the $\\{|0\\rangle, |1\\rangle\\}$ basis, and we could compute $\\langle 0|U^{\\vec\\phi}|0\\rangle = P(x)$.\n",
        "When projecting into the $\\{|+\\rangle, |-\\rangle\\}$ basis, we can construct a richer set of polynomials, since\n",
        "$$\n",
        "    \\langle +|U^{\\vec\\phi}|+\\rangle = \\mathrm{Re}(P(x)) + \\mathrm{i}\\cdot\\mathrm{Re}(Q(x))\\cdot\\sqrt{1 - x^2}\n",
        "$$"
      ],
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "# For now we want the polynomial symbolically for some variable 𝑥 and we use the same phases as above\n",
        "x = sp.Symbol('x')\n",
        "phases = [0.1, 0.2, 0.3, 0.4]\n",
        "\n",
        "# This time we need to the entry in the top-right corner of the unitary\n",
        "_, poly, qpoly = qsp_polynomial(x, phases)"
      ],
      "outputs": [],
      "execution_count": 14,
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "# translate amplitude polynomial into probability polynomial\n",
        "sum_poly = sp.re(poly) + 1j * sp.re(qpoly / 1j)\n",
        "sum_poly_abs = sp.Abs(sum_poly)**2\n",
        "\n",
        "# we use the same number of discretization points\n",
        "discretization_points = 30\n",
        "\n",
        "# and evaluate the new polynomial for all values in xs\n",
        "xs = np.linspace(-1, 1, discretization_points)\n",
        "ys = [sum_poly_abs.evalf(subs={'x': x}) for x in xs]\n",
        "\n",
        "fig = plt.figure()\n",
        "ax = fig.add_subplot(1, 1, 1)\n",
        "ax.plot(xs, ys)\n",
        "plt.show()"
      ],
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": "<Figure size 640x480 with 1 Axes>",
            "image/png": "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P/HKK6+IkpISsW7dun6He1/uPe1O9l7zSy+9JNRqtXjnnXdsXk/r51pra6t4/PHHRWFhoTh16pT45JNPxJVXXinGjRvn1mBuZe/1Pvfcc+LDDz8U5eXlori4WCxcuFBotVrx7bffSvvI7TW2mj17tliwYEGf7Z7+Gre2tkr3WwBi/fr14vDhw+LMmTNCCCFWrlwp7rvvPml/63DvJ554QpSUlIiNGzf2O9z7Ur/DwfL6YLNkyRIBoM/j3//+t7QPuufvsLJYLGLNmjUiJiZGaDQaceONN4rjx4/bnLexsVEsWrRIBAcHi9DQULF06VKbsOQulyvXqVOn+ly/EEKsWrVKJCYmCrPZ3OecH3zwgUhPTxfBwcEiKChITJs2TeTn5/e7rzvYe82VlZXiuuuuExEREUKj0YixY8eKJ554wmYeGyGEOH36tLjllltEQECAiIyMFD//+c9thke7i73X++9//7vf9wAAcerUKSGE573Gv/vd78To0aOFWq0WGRkZ4sCBA9Jz119/vViyZInN/m+99ZYYP368UKvV4oorrhC7du2yeX4w72l3s+eak5KS+n09161bJ4QQor29Xdx8880iKipK+Pv7i6SkJLFs2TK7bwCuZM/1/uxnP5P2jYmJEXPnzhWHDh2yOZ/cXmMhhCgtLRUAxEcffdTnXJ7+Gg/0uWO9xiVLlojrr7++zzHp6elCrVaLlJQUm/uy1aV+h4OlEMIDxvQSEREROYHPzWNDRERE8sVgQ0RERLLBYENERESywWBDREREssFgQ0RERLLBYENERESywWBDREREssFgQ0RERLLBYENERESywWBDREREssFgQ0RERLLBYENERESy8f8B0UwCVSo0IH8AAAAASUVORK5CYII=\n"
          },
          "metadata": {}
        }
      ],
      "execution_count": 15,
      "metadata": {}
    },
    {
      "cell_type": "code",
      "source": [
        "# Creates an experiment circuit based on x (this time adds H gates to the beginning and end)\n",
        "def experiment_circuit(x):\n",
        "    # Create circuit\n",
        "    circ = qsp_circuit(x, phases)\n",
        "\n",
        "    # Sandwich the circuit with H gates\n",
        "    h_circ = QuantumCircuit(1)\n",
        "    h_circ.h(0)\n",
        "    circ = h_circ.compose(circ).compose(h_circ)\n",
        "\n",
        "    # Measure qubit\n",
        "    circ.measure_all()\n",
        "\n",
        "    # Transpile circuit\n",
        "    return transpile(circ, backend)\n",
        "\n",
        "ys_simulated = simulate_polynomial(experiment_circuit, xs, num_shots)\n",
        "\n",
        "# Plot both evaluated probabilities `ys`` and simulated ones `simulated_ys``\n",
        "fig = plt.figure()\n",
        "ax = fig.add_subplot(1, 1, 1)\n",
        "ax.plot(xs, ys, label='formula')\n",
        "ax.plot(xs, ys_simulated, label='simulated')\n",
        "plt.legend(loc='upper right')\n",
        "plt.show()"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": "Job Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\nJob Status: job has successfully run\n"
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": "<Figure size 640x480 with 1 Axes>",
            "image/png": "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9JHQ6/WiuLj4io+h5PPXFNo5gHXEiBEu2+69995mA1g78zvRrrZ67J58VHZ2tjh48KBz+urBgwfFwYMHXaaxDh48WGzcuNH59auvvirCwsLEZ599Jo4cOSLuvPPOFqf2jh07VuzZs0fs3LlTDBw4ULGpvW2148KFC2Lw4MFiz549LsedOXNGSJIk/v3vfze7z88//1ysXLlS/Pjjj+LMmTPi3XffFQaDQSxZsqTLz+dy7p5fZmameOGFF8S+fftEVlaW+Oyzz0RycrK47rrrnMc4pvbecsst4tChQ2Lr1q0iKipK0am97pyjyWQSKSkpYuTIkSIzM9NlOmFDQ4MQQrnncN26dUKv14s1a9aI48ePi4cffliEhYU5Zy7df//9YuHChc79d+3aJTQajXj99dfFiRMnxNKlS1uc2nulv0dvcvccX331VaHT6cSGDRtcnivH/6CKigrx+9//XuzevVtkZWWJr7/+WowbN04MHDjQ6+G4I+f3/PPPiy+//FKcPXtW7N+/X9xzzz0iICBAHDt2zLmPLz2H7p6fwzXXXCNmzpzZbLuvPX8VFRXO1zkAYvny5eLgwYMiOztbCCHEwoULxf333+/c3zG1d8GCBeLEiRNixYoVLU7tbetn5gndPozMnj1bAGh2++abb5z7wF6PwcFms4lnn31WxMTECL1eL2666SZx6tQpl/stKSkR9957rwgODhahoaFizpw5LgHHW67UjqysrGbnK4QQixYtEgkJCcJqtTa7z3//+99izJgxIjg4WAQFBYnRo0eL999/v8V9u5q755eTkyOuu+46ERERIfR6vRgwYIBYsGCBS50RIYQ4f/68uO2220RgYKCIjIwUv/vd71ymxXqTu+f4zTfftPg7DUBkZWUJIZR9Dt955x3Rt29fodPpxMSJE8X333/v/N6UKVPE7NmzXfb/9NNPxaBBg4ROpxPDhw8XX3zxhcv32/P36G3unGNiYmKLz9XSpUuFEEJUV1eLW265RURFRQmtVisSExPF3LlzPfqP3l3unN/8+fOd+8bExIhp06aJAwcOuNyfrz2H7v6Onjx5UgAQ27Zta3Zfvvb8tfb/wXFOs2fPFlOmTGl2zJgxY4ROpxPJyckur4cObf3MPEESwsvzNYmIiIiaYJ0RIiIiUhTDCBERESmKYYSIiIgUxTBCREREimIYISIiIkUxjBAREZGiGEaIiIhIUQwjREREpCiGESIiIlIUwwgREREpimGEiIiIFPX/AdNRkKiHg49YAAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        }
      ],
      "execution_count": 16,
      "metadata": {}
    },
    {
      "cell_type": "markdown",
      "source": [
        "## 4. Next steps\n",
        "\n",
        "We hope you enjoyed our concrete demonstration of quantum signal processing. We encourage you to explore this notebook further, for example by:\n",
        "\n",
        "* Trying out different phase angles to construct other polynomials.\n",
        "* Changing the number of discretization points and number of shots to increase or decrease the precision of the plots.\n",
        "* Trying out different backends: How would the 3D-bar plot look like when running on a real QPU? Just replace `ionq.simulator` by `ionq.qpu`.\n",
        "\n",
        "To learn more about submitting Qiskit circuits to Azure Quantum, review [the Azure Quantum documentation](https://docs.microsoft.com/azure/quantum/quickstart-microsoft-qiskit?pivots=platform-ionq).\n",
        "\n",
        "To learn more about job pricing, also review [the Azure Quantum documentation](https://docs.microsoft.com/azure/quantum/azure-quantum-job-costs)."
      ],
      "metadata": {}
    }
  ],
  "metadata": {
    "interpreter": {
      "hash": "40a127b815e0f3d9ba005ae61d1209300c83351d477b6364f3bffc3e84aab6de"
    },
    "kernelspec": {
      "name": "python3",
      "language": "python",
      "display_name": "Python 3 (ipykernel)"
    },
    "language_info": {
      "name": "python",
      "version": "3.9.14",
      "mimetype": "text/x-python",
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "pygments_lexer": "ipython3",
      "nbconvert_exporter": "python",
      "file_extension": ".py"
    },
    "kernel_info": {
      "name": "python3"
    },
    "nteract": {
      "version": "nteract-front-end@1.0.0"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 2
}